[アップデート] Amazon Lexでチャット中の感情分析がサポートされました
Amazon Lexで、ユーザーの発言を感情分析する機能がサポートされました!
【AWS公式】Amazon Lex Now Supports Sentiment Analysis
Amazon Lexとは
Amazon Lex(以下、Lex)とは、音声やテキストを使用して、任意のアプリケーションに対話型インターフェイスを構築するサービスです。 LexではAlexaと同じ自動音声認識 (ASR)および自然言語理解 (NLU) の技術が利用されており、ユーザーは自然言語で対話ができるチャットボットを簡単に構築できます。
※Lexは2019年11月22日時点で日本語に対応しておらず、英語のみサポートされています。
Lexによるユーザー発言の感情分析
今回、感情分析の機能がサポートされたことで、チャット上でのユーザー発言の感情をボット上で気軽に判定できるようになります。
テキストの感情分析を行う機能は、元々Lexとは別サービスのAmazon Comprehend(以下、Comprehend)に設けられており、以前にLex上でComprehendを組み込んでみたことがあります。
上記エントリでは、Lambda上でComprehendのAPIを利用して感情分析を行っていますが、LexがネイティブにComprehendの感情分析をサポートしたことで、わざわざ上記のようなコードは書かなくて良くなりました。超便利…!
チャットの感情分析やってみる(英語)
それでは、早速Lexの感情分析を試していきましょう。
マネジメントコンソールから、lexなどと入力して「Amazon Lex」を選択します。
「Bots」メニューで「Create」をクリックし、新しいボットを作成してみます。
サンプルボットが用意されているので、ひとまず今回は「BookTrip」ボットを選択します。
Sentiment analysis
で「Yes」を選択し、感情分析の機能を有効にします。
その後、「Create」ボタンをクリックしてボットを作成します。
すぐにサンプルボットが作成され、ビルドが開始されますので完了するまで少し待ちましょう。
ビルド完了後、テスト用のチャットウィンドウが画面右側に展開されます。 早速なにかテキストを入れてみます。
Lexからのレスポンスを確認したところ、 sentimentResponse
に感情分析の結果が記載されています!
"sentimentResponse": { "sentimentLabel": "NEUTRAL", "sentimentScore": "{Positive: 0.0839683,Negative: 0.010418126,Neutral: 0.90556693,Mixed: 4.6604404E-5}" },
単純に「ホテルを予約したい」という発言なので、感情的にはほぼ中立のようですね。
ついでに、ボットとの会話には全く脈絡が無いですが、嬉しい気持ちを表現してみました。
"sentimentResponse": { "sentimentLabel": "POSITIVE", "sentimentScore": "{Positive: 0.9986695,Negative: 6.3178224E-5,Neutral: 0.0012642135,Mixed: 3.0312503E-6}" },
ボットは困っていますが、ポジティブ人間という判定はされたようです。
おわりに
Lexでチャット上でのユーザー発言の感情分析ができるようになりました。 これまではComprehend APIを組み合わる必要があったので、Lex上の設定1つで感情分析ができるようになったのはとてもいいアップデートだと思います。
気軽にユーザー発言の感情分析ができるようになったことで、ユーザーの感情に応じたレスポンスを返すことが可能になります。 こういった機能をうまく活用することで、よりユーザーに寄り添ったボットや、質の高いコミュニケーションが可能なボットを構築できるのではないでしょうか。